﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CardTypes = Wormhole.Engine.CardLibrary.CardTypes;
using CardProperties = Wormhole.Engine.CardLibrary.CardProperties;

namespace Wormhole.Engine.CardLibrary.SG1.Cards.Hero.Character
{
	/// <author>Rodney McKay</author>
	/// <date>08 April 2008</date>
	/// <summary>
	/// Merrin, Orbanian Urrone
	/// </summary>
	/// 
	/// <card>
	///		<title>Merrin</title>
	///		<subtitle>Orbanian Urrone</subtitle>
	///		<cost>2</cost>
	///		<gameText>When you assign Merrin, at the end of the current mission, destroy her.</gameText>
	///		<lore>Advanced engineer used as a gatherer of knowledge by her people. When she gains enough experience, her memories will be harversted and distributed to all her kind.</lore>
	///		
	///		<collectorInfo>
	///			<expansion>1</expansion>
	///			<rarity>Common</rarity>
	///			<number>65</number>
	///		</collectorInfo>
	///		
	///		<traits>
	///			<trait>Character</trait>
	///			<trait>Support</trait>
	///		</traits>
	///		
	///		<skills>
	///			<science>3</science>
	///		</skills>
	/// </card>
	public class SG1C65 : CardTypes.Character
	{
		#region Properties

		#region Title
		/// <summary>
		/// The card title.
		/// </summary>
		public override string Title
		{
			get { return "Merrin"; }
		}
		#endregion

		#region Subtitle
		/// <summary>
		/// Card Subtitle.
		/// </summary>
		public override string Subtitle
		{
			get { return "Orbanian Urrone"; }
		}
		#endregion

		#region Cost
		/// <summary>
		/// Card cost.
		/// </summary>
		public override int Cost
		{
			get { return 2; }
		}
		#endregion

		#region Game Text
		/// <summary>
		/// The game text.
		/// </summary>
		public override string GameText
		{
			get { return "When you assign Merrin, at the end of the current mission, destroy her."; }
		}
		#endregion

		#region Lore
		/// <summary>
		/// The lore card text.
		/// </summary>
		public override string Lore
		{
			get { return "Advanced engineer used as a gatherer of knowledge by her people. When she gains enough experience, her memories will be harversted and distributed to all her kind."; }
		}
		#endregion

		#region Traits
		private CardProperties.Traits _traits;
		/// <summary>
		/// The card traits.
		/// </summary>
		public override CardProperties.Traits Traits
		{
			get
			{
				if (this._traits == null)
				{
					this._traits = new CardProperties.Traits();
					this._traits.Add(CardProperties.Trait.Character);
					this._traits.Add(CardProperties.Trait.Support);
				}

				return this._traits;
			}
		}
		#endregion

		#region Skills
		private CardProperties.Skills _skills;
		/// <summary>
		/// The skills the character has.
		/// </summary>
		public override CardProperties.Skills Skills
		{
			get
			{
				if (this._skills == null)
				{
					this._skills = new CardProperties.Skills();
					this._skills.Culture = null;
					this._skills.Science = 3;
					this._skills.Combat = null;
					this._skills.Ingenuity = null;
				}

				return this._skills;
			}
		}
		#endregion

		#region Collector Info
		private CardProperties.CollectorInfo _collectorInfo;
		/// <summary>
		/// The collector information.
		/// </summary>
		public override CardProperties.CollectorInfo CollectorInfo
		{
			get
			{
				if (this._collectorInfo == null)
				{
					this._collectorInfo = new CardProperties.CollectorInfo();
					this._collectorInfo.Expansion = 1;
					this._collectorInfo.Rarity = CardProperties.Rarity.Common;
					this._collectorInfo.Number = 65;
				}

				return this._collectorInfo;
			}
		}
		#endregion

		#region Image URI
		private Uri _imageUri;
		/// <summary>
		/// The location of the card image.
		/// </summary>
		public override Uri ImageUri
		{
			get
			{
				if (this._imageUri == null)
				{
					this._imageUri = new Uri("pack://application:,,,/Wormhole.Engine.CardLibrary.SG1;component/Images/Hero/Character/1C65.jpg", UriKind.Absolute);
				}

				return this._imageUri;
			}
		}
		#endregion

		#endregion

		#region Constructor
		/// <summary>
		/// Initialize a new instance of the class.
		/// </summary>
		/// <param name="owner">The card owner.</param>
		public SG1C65(Player.Player owner)
			: base(owner)
		{

		}
		#endregion
	}
}
